CROSS_COMPILE ?= arm-linux-gnueabihf-#这里的 ?= 表示当前面CROSS_COMPILE被赋值后就不再给他赋值了,但是当他没有被赋值时,就给它赋值
NAME		  ?= ledc#这里的 ?= 表示也是一样的

CC		:= $(CROSS_COMPILE)gcc			#CC就相当于 		arm-linux-gnueabihf-gcc
LD		:= $(CROSS_COMPILE)ld			#LD相当于   		arm-linux-gnueabihf-ld
OBJCOPY := $(CROSS_COMPILE)objcopy      #OBJCOPY相当于		arm-linux-gnueabihf-objcopy
OBJDUMP := $(CROSS_COMPILE)objdump      #OBJDUMP相当于      arm-linux-gnueabihf-objdump

OBJS	:= start.o main.o    

$(NAME).bin : $(OBJS)                           		    #相当于	ledc.bin : start.o main.o     start.o要放到最前面
	$(LD) -Timx6ul.lds -o $(NAME).elf $^			  #相当于arm-linux-gnueabihf-ld -Timx6ul.lds -o ledc.elf start.o main.o
	$(OBJCOPY) -O binary -S $(NAME).elf $@			  #相当于arm-linux-gnueabihf-objcopy -O binary -S ledc.elf ledc.bin 
	$(OBJDUMP) -D -m arm $(NAME).elf > $(NAME).dis    #相当于arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis 

%.o : %.s                     #  $<表示依赖目标集合的第一个文件  $@表示目标集合
	$(CC) -Wall -nostdlib -c -O2 -o $@ $<            #相当于arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -o 

%.o : %.S
	$(CC) -Wall -nostdlib -c -O2 -o $@ $<

%.o : %.c
	$(CC) -Wall -nostdlib -c -O2 -o $@ $<

clean:
	rm -rf *.o $(NAME).bin	$(NAME).elf	$(NAME).dis

 
